home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / e / e_modules02.lha / e_modules02 / framework / easyRexx.e next >
Encoding:
Text File  |  1980-01-01  |  1.6 KB  |  56 lines

  1. -> moduî OO definiujâcy dostëp do easyrexxa z poziomu FW!
  2. -> (c) Piotr Gapiïski (31.03.96)
  3. -> NIE UÛYWAê do obsîugi ArexxShella i asynchronicznego przesyîania
  4. -> wiadomoôci...
  5.  
  6. OPT MODULE
  7. OPT EXPORT
  8. OPT PREPROCESS
  9.  
  10. MODULE 'easyrexx','libraries/easyrexx','libraries/easyrexx_macros'
  11. MODULE 'exec/ports','utility/tagitem','intuition/intuition'
  12. MODULE 'fw/wbObject'
  13.  
  14. OBJECT easyRexx OF wbObject
  15.   commandtable:PTR TO arexxcommandtable
  16.   context:PTR TO arexxcontext
  17.   portname: PTR TO CHAR
  18. ENDOBJECT
  19.  
  20. -> konstruktor
  21. -> zwraca FALSE w przypadku niepowodzenia
  22. PROC create(commandtable,tags) OF easyRexx HANDLE
  23.   IF easyrexxbase=NIL THEN Raise(0)
  24.   self.commandtable:=commandtable
  25.   self.context:=AllocARexxContextA([
  26.     IF commandtable THEN ER_CommandTable ELSE TAG_IGNORE,commandtable,
  27.     IF tags THEN TAG_MORE ELSE TAG_IGNORE,tags,TAG_DONE])
  28.   IF self.context=NIL THEN Raise(0)
  29.   self.portname:=self.context.portname
  30.   RETURN TRUE
  31. EXCEPT
  32.   self.remove()
  33. ENDPROC FALSE
  34.  
  35. -> destruktor
  36. PROC remove() OF easyRexx
  37.   IF self.context THEN FreeARexxContext(self.context)
  38.   self.context:=NIL
  39.   self.portname:=NIL
  40.   self.commandtable:=NIL
  41. ENDPROC
  42.  
  43. -> obsîuguje zdarzenia gdy obiekt jest aktywowany
  44. PROC handleActivation() OF easyRexx
  45.   DEF done
  46.   ER_SETSIGNALS(self.context,Shl(1,self.signal()))
  47. ENDPROC self.handleMessage(self.context)
  48.  
  49. -> obsîuguje wiadomoôci napîywajâce do obiektu
  50. PROC handleMessage(msg: PTR TO arexxcontext) OF easyRexx IS PASS
  51.  
  52. -> bit sygnalizacyjny EXECa naleûâcy do obiektu
  53. PROC signal() OF easyRexx IS self.context.port.sigbit
  54. -> niestety - program nie bedzie reagowaî na informacje z ArexxShella i
  55. -> asynchronicznego portu easyrexxa
  56.